import {userList,userCount} from "../../request/api.js"
const state = {
    //列表
    list: [],
    //数据总条数
    count: 0,
    //每页展示条数
    size: 2,
    //当前页码数
    page:1
}
const mutations={
    changeList(state,val){
        state.list = val
    },
    changeCount(state, val) {
        state.count=val
    },
    changePage(state, val) {
        state.page=val
    }
}
const actions={
    asyncChangeList(context) {
                        // state中的 当前页码数和 每页展示条数
        userList({ page: context.state.page, size: context.state.size }).then(res => {
            //bug1、如果列表中无数据(如所有数据都删除完后) 我们要手动返回一个空数组(否则会显示null)
            let arr = res.data.list ? res.data.list : []
            //bug2、如果请求到的没有数据，说明当前页没有数据，所以要让当前页码数减1，再请求新的列表数据。
            // 如果数组没有内容  且当前页码数最小值为1
            if (arr.length <= 0 && context.state.page > 1) {
                //让当前页码数减一
                context.commit("changePage", context.state.page - 1);
                //再重新请求新的列表数据(使用dispatch调用actions ,commit调用mutations)
                context.dispatch("asyncChangeList")
            }
            context.commit("changeList", arr)
        })
    },
    asyncChangeCount(context) {
        userCount().then(res => {
            context.commit("changeCount",res.data.list[0].total)
        })
    },
    asyncChangePage(context,num) {
        //修改当前页码数 并且重新请求新的列表数据
        context.commit("changePage", num)
        context.dispatch("asyncChangeList")
    }
}
const getters={
    list(state){
        return state.list
    },
    count(state) {
        return state.count
    },
    size(state) {
        return state.size
    }
}
export default{
    state,mutations,actions,getters,
    namespaced:true
}